

using System;
using System.Text;

using NHibernate;
using NHibernate.Cfg;
using NHibernate.Criterion;
using NHibernate.Exceptions;

using LastFMGenNHibernate.EN.LastFM;
using LastFMGenNHibernate.CAD.LastFM;

namespace LastFMGenNHibernate.CEN.LastFM
{
        public partial class CancionCEN
        {
        private ICancionCAD _ICancionCAD;

        public CancionCEN(ICancionCAD _ICancionCAD)
        {
                this._ICancionCAD = _ICancionCAD;
        }

        public int New_ (int p_id, String p_nombre, int p_rating, int p_reproducciones, int p_popular, int p_album, int p_artista, int p_usuarioRegistrado, int p_usuarioRegistrado_0, String p_etiqueta)
        {
                CancionEN cancionEN = null;
                int oid;

                //Initialized CancionEN
                cancionEN = new CancionEN ();
                cancionEN.Id = p_id;
                cancionEN.Nombre = p_nombre;
                cancionEN.Rating = p_rating;
                cancionEN.Reproducciones = p_reproducciones;
                cancionEN.Popular = p_popular;
                if (p_album != -1) {
                        cancionEN.Album = new LastFMGenNHibernate.EN.LastFM.AlbumEN ();
                        cancionEN.Album.Id = p_album;
                }
                if (p_artista != -1) {
                        cancionEN.Artista = new LastFMGenNHibernate.EN.LastFM.ArtistaEN ();
                        cancionEN.Artista.Id = p_artista;
                }
                if (p_usuarioRegistrado != -1) {
                        cancionEN.UsuarioRegistrado = new LastFMGenNHibernate.EN.LastFM.UsuarioRegistradoEN ();
                        cancionEN.UsuarioRegistrado.Id = p_usuarioRegistrado;
                }
                if (p_usuarioRegistrado_0 != -1) {
                        cancionEN.UsuarioRegistrado_0 = new LastFMGenNHibernate.EN.LastFM.UsuarioRegistradoEN ();
                        cancionEN.UsuarioRegistrado_0.Id = p_usuarioRegistrado_0;
                }
                cancionEN.Etiqueta = p_etiqueta;
                //Call to CancionCAD

                oid = _ICancionCAD.New_ (cancionEN);
                return oid;
        }

        public void Destroy (int id)
        {
                _ICancionCAD.Destroy (
                        id

                        );
        }

        public void Modify (int p_Cancion_OID, String p_nombre, int p_rating, int p_reproducciones, int p_popular, String p_etiqueta)
        {
                CancionEN cancionEN = null;

                //Initialized CancionEN
                cancionEN = new CancionEN ();
                cancionEN.Id = p_Cancion_OID;
                cancionEN.Nombre = p_nombre;
                cancionEN.Rating = p_rating;
                cancionEN.Reproducciones = p_reproducciones;
                cancionEN.Popular = p_popular;
                cancionEN.Etiqueta = p_etiqueta;
                //Call to CancionCAD

                _ICancionCAD.Modify (cancionEN);
        }

        public System.Collections.Generic.IList<CancionEN> DevolverCanciones (int first, int size)
        {
                System.Collections.Generic.IList<CancionEN> list = null;

                list = _ICancionCAD.DevolverCanciones (first, size);
                return list;
        }
        }
}
